import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;


public class HitzorduKudeatzailea {
	
	//Singleton patroia
	private static HitzorduKudeatzailea instantzia = new HitzorduKudeatzailea();
	
	private HitzorduKudeatzailea(){
		
	}
	
	public static HitzorduKudeatzailea getInstantzia() {
		return instantzia;
	}
	
	public Vector<Hitzordua> hitzorduaNanBidezBilatu(String nan) {
		Vector<Hitzordua> hitzorduLista = new Vector<Hitzordua>();
		Hitzordua hitzordua = null;

		String terapeutaNan;
		String data;
		String ordua;
		String terapia;
				
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		
		String k1 = "SELECT terapeutaNan, data, ordua, terapia" + " FROM hitzorduak"
		+ " WHERE nan = '" + nan +"' ORDER BY data" ;

	
		ResultSet rs = dbk.execSQL(k1);
		
		try {
			
			while(rs.next()){

			terapeutaNan= rs.getString("terapeutaNan");
			data= rs.getString("data");
			ordua= rs.getString("ordua");
			terapia= rs.getString("terapia");
			
			hitzordua = new Hitzordua(nan, terapeutaNan,data,ordua,terapia);
			
			hitzorduLista.add(hitzordua);
			}
		
			rs.close();

		} catch (SQLException e) {
			// Emaitza hutsa izango da beraz nan edo pasahitza okerrak dira
			hitzordua = null;
			try {
				EIDatuEzZuzena dialog = new EIDatuEzZuzena();
				
			} catch (Exception ex) {
				ex.printStackTrace();
			}


		}
		return hitzorduLista;
	}
	
	public Vector<Hitzordua> hitzoduaDataBidezBilatu(String data) {
		Vector<Hitzordua> hitzorduLista = new Vector<Hitzordua>();
		Hitzordua hitzordua = null;
		String nan;
		String terapeutaNan;
		String ordua;
		String terapia;
		
		
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		
		String k1 = "SELECT nan, terapeutaNan, ordua, terapia " + " FROM hitzorduak"
		+ " WHERE data = '" + data +"' ORDER BY ordua" ;

		System.out.println(k1);
		ResultSet rs = dbk.execSQL(k1);
		
		try {
			
			while(rs.next()){
			
				nan= rs.getString("NAN");
				terapeutaNan= rs.getString("terapeutaNan");
				ordua= rs.getString("ordua");
				terapia= rs.getString("terapia");
			
				hitzordua = new Hitzordua(nan, terapeutaNan,data,ordua,terapia);
			
				hitzorduLista.add(hitzordua);
			}
		
			rs.close();

		} catch (SQLException e) {
			// Emaitza hutsa izango da beraz nan edo pasahitza okerrak dira
			try {
				EIDatuEzZuzena dialog = new EIDatuEzZuzena();
				
			} catch (Exception ex) {
				ex.printStackTrace();
			}


		}
		return hitzorduLista;
	}
	
	public Boolean hitzorduaGehitu(Hitzordua h){
		
		String data = h.getData();
		String ordua = h.getOrdua();
		String nan= h.getNan();
		String terapeutaNan = h.getTerapeutaNan();
		String terapia = h.getTerapia();
		Boolean burutua;
		
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		
		String k1 = "SELECT nan, terapeutaNan, ordua, terapia " + " FROM hitzorduak"
		+ " WHERE data = '" + data +"' AND ordua = '" + ordua +"' AND terapeutaNan ='" + terapeutaNan +"'" ;
		
		ResultSet rs = dbk.execSQL(k1);
		try {
			
			if (rs.next()){
				EIDataHartutaDago frame = new EIDataHartutaDago();
				burutua = false;
			}else{
				String k2 = "INSERT INTO hitzorduak (data, ordua, nan, terapeutaNan, terapia)"
				+ " VALUES ('" + data +"','" + ordua +"','" + nan +"','" + terapeutaNan +"','" + terapia +"')" ;
				
				dbk.execSQL(k2);
				burutua = true;
			}
			rs.close();

		} catch (SQLException e) {
			// Emaitza hutsa 
			burutua = false;


		}
		
		return burutua;
	}
	
	public Boolean hitzorduaEzabatu(String nan, String data, String ordua){
		Boolean burutua;
		
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		
		String k1 = "SELECT nan FROM hitzorduak"
		+ " WHERE data = '" + data +"' AND ordua = '" + ordua +"' AND NAN ='" + nan +"'" ;
		
	
		ResultSet rs = dbk.execSQL(k1);
		try {
			
			if (rs.next()){
				String k2 = "DELETE FROM hitzorduak"
				+ " WHERE data = '" + data +"' AND ordua = '" + ordua +"' AND NAN ='" + nan +"'" ;

				dbk.execSQL(k2);
				burutua = true;
				
			}else{
				burutua = false;
			}
			rs.close();

		} catch (SQLException e) {
			// Emaitza hutsa 
			burutua = false;


		}
		
		return burutua;
		
	}

	public Vector<String> getEspezialitateak() {
		
		Vector<String> lista = new Vector<String>();
		String esp;
		
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		
		String k1 = "SELECT DISTINCT espezialitatea" + " FROM espezialitateak";
	
		ResultSet rs = dbk.execSQL(k1);
		
		try {
			while (rs.next()){
				esp= rs.getString("espezialitatea");
			
				lista.add(esp);
			}
		
			rs.close();

		} catch (SQLException e) {
			lista = null;
			
		}
		return lista;
	}
	
public Vector<String> getTerapeutak(String esp) {
		
		Vector<String> lista = new Vector<String>();
		String ter;
		
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		
		String k1 = "SELECT terapeuta" + " FROM espezialitateak"
		+ " WHERE espezialitatea = '" + esp +"'" ;
	
		ResultSet rs = dbk.execSQL(k1);
		
		try {
			while(rs.next()){
			
				ter= rs.getString("terapeuta");
				lista.add(ter);
			}
		
			rs.close();

		} catch (SQLException e) {
			// Emaitza hutsa izango da beraz nan edo pasahitza okerrak dira
			lista = null;
			
		}
		return lista;
	}
}
